import 'package:example_example/global/GlobalUrl.dart';
import 'package:example_example/util/LogUtil.dart';

import '../../pages/view/HeaderView.dart';
import '../../services/ScreenAdapter.dart';
import '../../services/TLSizeFit.dart';
import 'package:flutter/material.dart';
import 'WaitDo/WaitAll.dart';
import 'WaitDo/Prepare.dart';
import 'WaitDo/Regular.dart';
import 'WaitDo/PoOrder.dart';

import '../../YColors.dart';
import '../../services/EventBus.dart';

/**
 * 待办任务
 */
class WaitDoTaskPage extends StatefulWidget {
  WaitDoTaskPage({Key key}) : super(key: key);

  _WaitDoTaskPageState createState() => _WaitDoTaskPageState();
}

class _WaitDoTaskPageState extends State<WaitDoTaskPage>
    with SingleTickerProviderStateMixin {
  bool flagSel = false;
  TabController _tabController;

  List tabList = [];

  int pageIndex = 1;
  int count = 1;

  List dataList = [];
  List selectedList = [];
  bool applyFlag = false;

  @override
  void initState() {
    // 生命周期函数
    // TODO: implement initState
    LogUtil.v("待办任务里的。。。。initState（）");
//    LogUtil.v("待办任务里的。。。。initState contxt:${this.context}");
//    待办管理里的。。。。initState contxt:WaitDoTaskPage(dirty, state: _WaitDoTaskPageState#24887(lifecycle state: created))
    super.initState();
    _tabController = new TabController(
      vsync: this,
      length: 4,
    );

    /*
    * 监听状态的变化
    * */
    _tabController.addListener(() {
      print('点击了${_tabController.index}');
      setState(() {
        applyFlag = _tabController.index == 3;
        flagSel = false;
      });
    });
  }

  @override
  void dispose() {
    // 生命周期函数
    // TODO: implement dispose
    super.dispose();
    print('待办任务里的。。。。dispose');
    _tabController.dispose();
  }

  @override
  Widget build(BuildContext context) {
    LogUtil.v("待办任务里的。。。。build()");
//    LogUtil.v("待办任务里的。。。。build()context:$context");
//    LogUtil.v("待办任务里的。。。。build()this.context:${this.context}");
    TLSizeFit.initialize();
    ScreenAdapter.init(context);

    // TODO: implement build
    return Scaffold(
      appBar: HeaderView(
        title: "待办任务",
        isShowReturnArrow: true,
        actionList: <Widget>[
          applyFlag?TextButton(
              onPressed: () {
                print("要去批量审批");
                setState(() {
                  flagSel = !flagSel;
//                  setMyShow(flagSel);
                  /**
                   * 发送广播
                   */
                  eventBus.fire(new ApplySelectEvent(flagSel));
                });
              },
              child: Text(flagSel ? "取消" : "批量审批",
                  style: TextStyle(color: YColors.t, fontSize: 14))):Container()
        ],
      ),
      body: Container(
        color: YColors.orderBackground,
        child: setBodyView(),
      ),
    );
  }

  Widget setBodyView() {
    return Container(
      child: Column(
        children: <Widget>[
          TabBar(
            isScrollable: true,
            // 是否滚动
            controller: this._tabController,

            /**
             * 注意：下面的Tab 里的text 不能设置字体的大小颜色，否则会不起作用的
             */
            labelColor: YColors.b,
            // 选中后字体的颜色
            indicatorColor: YColors.b,
            // 指示器的颜色
            labelStyle: TextStyle(
              fontSize: 14,
            ),
            // 选中后字体的大小
            unselectedLabelStyle: TextStyle(fontSize: 14),
//            indicatorWeight:2,
            //未选中的颜色
            unselectedLabelColor: YColors.c,

            tabs: <Widget>[
              Tab(child: _tabItemView("全部")),
              Tab(child: _tabItemView("售前立项")),
              Tab(child: _tabItemView("正式立项")),
              Tab(child: _tabItemView("Po")),
            ],
          ),
          Expanded(
            child: TabBarView(
              controller: this._tabController,
              children: <Widget>[
                WaitAllPage(),  // 全部
                PreparePage(),  // 售前立项
                RegularPage(),  // 正式立项
                PoOrderPage(),  // PO
              ],
            ),
          )
        ],
      ),
    );
  }

  Widget _tabItemView(value) {
    return Container(
      alignment: Alignment.center,
      width: TLSizeFit.setPx(60),
      child: Text(
        value,
        style: TextStyle(
//          color: YColors.c,
//          fontSize: 14.0,
            ),
      ),
    );
  }
}
